package com.ponhu.ea2.goodsCenter.provider.service;

import com.ponhu.ea2.dto.DictItemDataDto;
import com.ponhu.ea2.entity.PhSysDictItem;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
import java.util.Map;
import java.util.function.Function;

public interface PhSysDictItemService extends IService<PhSysDictItem> {

    /**
     * 根据字典类型获取字典项集合
     * @param dictType
     * @return
     */
    List<PhSysDictItem> getDictItemsByType(String dictType);

    /**
     *  根据字典类型和值查询字典内容
     * @param dictType
     * @param value
     * @return
     */
    PhSysDictItem getDictItemByValue(String dictType, String value);

    /**
     * 查询成色字典数据列表
     * @param dictItemValueList
     * @return
     */
    public List<PhSysDictItem> getQualityDictList(List<String> dictItemValueList);

    /**
     * 查询货源字典数据列表
     * @param dictItemValueList
     * @return
     */
    public List<PhSysDictItem> getInventorySourceDictList(List<String> dictItemValueList);

    /**
     * 查询入库方式数据列表
     * @param dictItemValueList
     * @return
     */
    public List<PhSysDictItem> getInWayDictList(List<String> dictItemValueList);

    /**
     * 获取列表数据结果集中的字典名称数据Map
     * @param dictType 字典类型
     * @param records 结果集
     * @param mapper 字典字段值
     * @param <T>
     * @return
     */
    public <T> Map<String, String> getDictItemList(String dictType, List<T> records, Function<T, String> mapper);

    /**
     * 添加或更新字典项
     * @param dictItemDataList
     * @return
     */
    boolean addOrUpdateDictItem(List<DictItemDataDto> dictItemDataList);


}
